home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / alpha / examples / TBITest.d < prev    next >
Encoding:
Text File  |  2002-10-28  |  3.9 KB  |  109 lines

  1. MODULE 'exec/libraries','dos/dos','intuition/intuition','intuition/intuitionbase'
  2. MODULE 'libraries/gadtools','images/titlebar','titlebar','intuition/gadgetclass','intuition/imageclass'
  3.  
  4. DEF TitlebarImageBase:PTR TO Library
  5.  
  6. PROC main()(UL)
  7.  
  8.   DEF scr:PTR TO Screen,win:PTR TO Window,imsg:PTR TO IntuiMessage,dri:PTR TO DrawInfo
  9.   DEFUL class,code,done=FALSE,width=640,height=200
  10.   DEF gad:PTR TO Gadget,i:PTR TO Image
  11.  
  12.   TitlebarImageBase:=OpenLibrary('images/titlebar.image',40)
  13.   IFN TitlebarImageBase THEN RETURN RETURN_FAIL
  14.  
  15.   IF scr:=LockPubScreen(NIL)
  16.     width:=scr.Width
  17.     height:=scr.Height
  18.     UnlockPubScreen(NIL,scr)
  19.  
  20.     IF dri:=GetScreenDrawInfo(scr)
  21.       IF i:=NewObject(NIL,'tbiclass',SYSIA_Which,ICONIFYIMAGE,
  22.                                      SYSIA_DrawInfo,dri,
  23.                                      TAG_END)
  24.         IF gad:=NewObject(NIL,'buttongclass',
  25.                                GA_RelRight,TBI_RELPOS(i,2),
  26.                                GA_Top,0,
  27.                                GA_Width,i.Width - 1,
  28.                                GA_Height,i.Height,
  29.                                GA_TopBorder,TRUE,
  30.                                GA_Image,i,
  31.                                GA_RelVerify,TRUE,
  32.                                TAG_END)
  33.  
  34.           IF win:=OpenWindowTags(NIL,WA_Left,(width - 400) / 2,
  35.                                  WA_Top,(height - 250) / 2,
  36.                                  WA_Width,400,WA_Height,250,
  37.                                  WA_CloseGadget,TRUE,
  38.                                  WA_DepthGadget,TRUE,
  39.                                  WA_SizeGadget,TRUE,
  40.                                  WA_DragBar,TRUE,
  41.                                  WA_Gadgets,gad,
  42.                                  WA_SmartRefresh,TRUE,
  43.                                  WA_Activate,TRUE,
  44.                                  WA_Title,'titlebar.image test',
  45.                                  WA_IDCMP,IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW|IDCMP_GADGETUP,
  46.                                  TAG_END)
  47.  
  48.             DEFUL a,b,t=NIL
  49.             DEF v:PTR TO Image
  50.             FOR a:=0 TO 2
  51.               FOR b:=0 TO 1
  52.                 IF v:=NewObject(NIL,'tbiclass',
  53.                                      SYSIA_Which,POPUPIMAGE + t++,
  54.                                      SYSIA_DrawInfo,dri,
  55.                                      TAG_END)
  56.                   DrawImageState(win.RPort,v,
  57.                                       50 + a * 100,50 + b * 100,
  58.                                       IDS_NORMAL,dri)
  59.  
  60.                   DrawImageState(win.RPort,v,
  61.                                  90 + a * 100,50 + b * 100,
  62.                                  IDS_SELECTED,dri)
  63.  
  64.                   DrawImageState(win.RPort,v,
  65.                                  50 + a * 100,90 + b * 100,
  66.                                  IDS_INACTIVENORMAL,dri)
  67.  
  68.                   DrawImageState(win.RPort,v,
  69.                                  90 + a * 100,90 + b * 100,
  70.                                  IDS_INACTIVESELECTED,dri)
  71.  
  72.                   WaitBlit()
  73.                   DisposeObject(v)
  74.                 ENDIF
  75.               ENDFOR
  76.             ENDFOR
  77.             RemoveGadget(win,gad)
  78.             AddGadget(win,gad,NIL)
  79.  
  80.             WHILE done=FALSE
  81.               Wait(1 << win.UserPort.SigBit)
  82.               WHILE imsg:=GetMsg(win.UserPort)
  83.                 class:=imsg.Class
  84.                 code:=imsg.Code
  85.                 ReplyMsg(imsg)
  86.                 IF class=IDCMP_CLOSEWINDOW
  87.                   done:=TRUE
  88.                 ELSEIF class=IDCMP_GADGETUP
  89.                   DisplayBeep(NIL)
  90.                 ELSEIF class=IDCMP_REFRESHWINDOW
  91.                   BeginRefresh(win)
  92.                   EndRefresh(win,TRUE)
  93.                 ENDIF
  94.               ENDWHILE
  95.             ENDWHILE
  96.             CloseWindow(win)
  97.           ENDIF
  98.           DisposeObject(gad)
  99.         ENDIF
  100.         DisposeObject(i)
  101.       ENDIF
  102.       FreeScreenDrawInfo(scr,dri)
  103.     ENDIF
  104.     UnlockPubScreen(NIL,scr)
  105.   ENDIF
  106.   CloseLibrary(TitlebarImageBase)
  107.   RETURN RETURN_OK
  108. ENDPROC
  109.